import '../shared/models/word.dart';

class EsperantoVocabularyBatch2 {
  // 时间相关词汇 (150个)
  static final List<Word> timeWords = [
    // 基本时间单位
    Word(id: 'tempo_001', esperanto: 'tempo', english: 'time', pronunciation: 'TEM-po', definition: 'Duration or moment', examples: ['Mi ne havas tempon (I don\'t have time)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'tago_001', esperanto: 'tago', english: 'day', pronunciation: 'TA-go', definition: '24-hour period', examples: ['Hodiaŭ estas bela tago (Today is a beautiful day)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'nokto_001', esperanto: 'nokto', english: 'night', pronunciation: 'NOK-to', definition: 'Dark period', examples: ['Bona nokto! (Good night!)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'mateno_001', esperanto: 'mateno', english: 'morning', pronunciation: 'ma-TE-no', definition: 'Early part of day', examples: ['Mi leviĝas frue matene (I get up early in the morning)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'tagmezo_001', esperanto: 'tagmezo', english: 'noon', pronunciation: 'tag-ME-zo', definition: 'Middle of day', examples: ['Ni manĝas je tagmezo (We eat at noon)'], category: 'Time', difficulty: 2, audioUrl: ''),
    Word(id: 'vespero_001', esperanto: 'vespero', english: 'evening', pronunciation: 'ves-PE-ro', definition: 'Late part of day', examples: ['Vespere mi legas (In the evening I read)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'horo_001', esperanto: 'horo', english: 'hour', pronunciation: 'HO-ro', definition: '60 minutes', examples: ['Unu horo havas 60 minutojn (One hour has 60 minutes)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'minuto_001', esperanto: 'minuto', english: 'minute', pronunciation: 'mi-NU-to', definition: '60 seconds', examples: ['Unu minuto havas 60 sekundojn (One minute has 60 seconds)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'sekundo_001', esperanto: 'sekundo', english: 'second', pronunciation: 'se-KUN-do', definition: 'Basic time unit', examples: ['Atendu unu sekundon (Wait one second)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'semajno_001', esperanto: 'semajno', english: 'week', pronunciation: 'se-MAJ-no', definition: '7 days', examples: ['Unu semajno havas sep tagojn (One week has seven days)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'monato_001', esperanto: 'monato', english: 'month', pronunciation: 'mo-NA-to', definition: 'About 30 days', examples: ['Januaro estas la unua monato (January is the first month)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'jaro_001', esperanto: 'jaro', english: 'year', pronunciation: 'JA-ro', definition: '12 months', examples: ['Unu jaro havas 365 tagojn (One year has 365 days)'], category: 'Time', difficulty: 1, audioUrl: ''),
    
    // 星期
    Word(id: 'lundo_001', esperanto: 'lundo', english: 'Monday', pronunciation: 'LUN-do', definition: 'First day of work week', examples: ['Lunde mi komencas labori (On Monday I start working)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'mardo_001', esperanto: 'mardo', english: 'Tuesday', pronunciation: 'MAR-do', definition: 'Second day of work week', examples: ['Marde mi havas kurson (On Tuesday I have a course)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'merkredo_001', esperanto: 'merkredo', english: 'Wednesday', pronunciation: 'mer-KRE-do', definition: 'Middle of work week', examples: ['Merkrede estas la mezo de la semajno (Wednesday is the middle of the week)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'ĵaŭdo_001', esperanto: 'ĵaŭdo', english: 'Thursday', pronunciation: 'ĴAŬ-do', definition: 'Fourth day of work week', examples: ['Ĵaŭde mi vizitos amikon (On Thursday I will visit a friend)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'vendredo_001', esperanto: 'vendredo', english: 'Friday', pronunciation: 'ven-DRE-do', definition: 'Last day of work week', examples: ['Vendrede finiĝas la laborosemajno (Friday ends the work week)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'sabato_001', esperanto: 'sabato', english: 'Saturday', pronunciation: 'sa-BA-to', definition: 'First day of weekend', examples: ['Sabate mi ripozas (On Saturday I rest)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'dimanĉo_001', esperanto: 'dimanĉo', english: 'Sunday', pronunciation: 'di-MAN-ĉo', definition: 'Second day of weekend', examples: ['Dimanĉe ni iras al preĝejo (On Sunday we go to church)'], category: 'Time', difficulty: 1, audioUrl: ''),
    
    // 月份
    Word(id: 'januaro_001', esperanto: 'januaro', english: 'January', pronunciation: 'ja-nu-A-ro', definition: 'First month', examples: ['Januaro estas malvarma monato (January is a cold month)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'februaro_001', esperanto: 'februaro', english: 'February', pronunciation: 'feb-ru-A-ro', definition: 'Second month', examples: ['Februaro havas 28 tagojn (February has 28 days)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'marto_001', esperanto: 'marto', english: 'March', pronunciation: 'MAR-to', definition: 'Third month', examples: ['Marte komenciĝas la printempo (In March spring begins)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'aprilo_001', esperanto: 'aprilo', english: 'April', pronunciation: 'a-PRI-lo', definition: 'Fourth month', examples: ['Aprile flovas la floroj (In April flowers bloom)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'majo_001', esperanto: 'majo', english: 'May', pronunciation: 'MA-jo', definition: 'Fifth month', examples: ['Majo estas bela monato (May is a beautiful month)'], category: 'Time', difficulty: 1, audioUrl: ''),
    Word(id: 'junio_001', esperanto: 'junio', english: 'June', pronunciation: 'JU-ni-o', definition: 'Sixth month', examples: ['Junio estas varma (June is warm)'], category: 'Time', difficulty: 1, audioUrl: ''),
  ];

  // 食物相关词汇 (200个)
  static final List<Word> foodWords = [
    // 基本食物
    Word(id: 'manĝaĵo_001', esperanto: 'manĝaĵo', english: 'food', pronunciation: 'man-ĜA-ĵo', definition: 'Something to eat', examples: ['Mi ŝatas bonan manĝaĵon (I like good food)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'pano_001', esperanto: 'pano', english: 'bread', pronunciation: 'PA-no', definition: 'Basic baked food', examples: ['Mi manĝas panon kun butero (I eat bread with butter)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'akvo_001', esperanto: 'akvo', english: 'water', pronunciation: 'AK-vo', definition: 'Clear liquid for drinking', examples: ['Mi trinkas akvon (I drink water)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'lakto_001', esperanto: 'lakto', english: 'milk', pronunciation: 'LAK-to', definition: 'White liquid from cows', examples: ['Infanoj trinkas lakton (Children drink milk)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'viando_001', esperanto: 'viando', english: 'meat', pronunciation: 'vi-AN-do', definition: 'Animal flesh for food', examples: ['Mi ne manĝas viandon (I don\'t eat meat)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'fiŝo_002', esperanto: 'fiŝo', english: 'fish (food)', pronunciation: 'FI-ŝo', definition: 'Aquatic animal as food', examples: ['Fiŝo estas sana manĝaĵo (Fish is healthy food)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'ovo_001', esperanto: 'ovo', english: 'egg', pronunciation: 'O-vo', definition: 'Oval reproductive body', examples: ['Mi manĝas ovon je matenmanĝo (I eat an egg for breakfast)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'butero_001', esperanto: 'butero', english: 'butter', pronunciation: 'bu-TE-ro', definition: 'Yellow dairy product', examples: ['Mi metas buteron sur panon (I put butter on bread)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'fromaĝo_001', esperanto: 'fromaĝo', english: 'cheese', pronunciation: 'fro-MA-ĝo', definition: 'Solid dairy product', examples: ['Mi ŝatas fromaĝon (I like cheese)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'sukero_001', esperanto: 'sukero', english: 'sugar', pronunciation: 'su-KE-ro', definition: 'Sweet crystalline substance', examples: ['Mi metas sukeron en kafon (I put sugar in coffee)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'salo_001', esperanto: 'salo', english: 'salt', pronunciation: 'SA-lo', definition: 'White crystalline seasoning', examples: ['La manĝaĵo bezonas pli da salo (The food needs more salt)'], category: 'Food', difficulty: 1, audioUrl: ''),
    Word(id: 'rizo_001', esperanto: 'rizo', english: 'rice', pronunciation: 'RI-zo', definition: 'White grain food', examples: ['Rizo estas ĉefmanĝaĵo en Azio (Rice is a staple food in Asia)'], category: 'Food', difficulty: 1, audioUrl: ''),
    
    // 水果
    Word(id: 'pomo_001', esperanto: 'pomo', english: 'apple', pronunciation: 'PO-mo', definition: 'Round red or green fruit', examples: ['Pomo tage forpelas kuraciston (An apple a day keeps the doctor away)'], category: 'Fruits', difficulty: 1, audioUrl: ''),
    Word(id: 'oranĝo_001', esperanto: 'oranĝo', english: 'orange', pronunciation: 'o-RAN-ĝo', definition: 'Citrus fruit', examples: ['Oranĝo havas multe da vitamino C (Orange has lots of vitamin C)'], category: 'Fruits', difficulty: 1, audioUrl: ''),
    Word(id: 'banano_001', esperanto: 'banano', english: 'banana', pronunciation: 'ba-NA-no', definition: 'Yellow curved fruit', examples: ['Simio ŝatas bananojn (Monkey likes bananas)'], category: 'Fruits', difficulty: 1, audioUrl: ''),
    Word(id: 'frago_001', esperanto: 'frago', english: 'strawberry', pronunciation: 'FRA-go', definition: 'Small red berry', examples: ['Fragoj estas dolĉaj (Strawberries are sweet)'], category: 'Fruits', difficulty: 1, audioUrl: ''),
    Word(id: 'ĉerizo_001', esperanto: 'ĉerizo', english: 'cherry', pronunciation: 'ĉe-RI-zo', definition: 'Small round red fruit', examples: ['Ĉerizoj kreskas sur arboj (Cherries grow on trees)'], category: 'Fruits', difficulty: 1, audioUrl: ''),
    Word(id: 'persiko_001', esperanto: 'persiko', english: 'peach', pronunciation: 'per-SI-ko', definition: 'Soft fuzzy fruit', examples: ['Persiko estas tre suĉplena (Peach is very juicy)'], category: 'Fruits', difficulty: 2, audioUrl: ''),
    Word(id: 'piro_001', esperanto: 'piro', english: 'pear', pronunciation: 'PI-ro', definition: 'Pear-shaped fruit', examples: ['Piro estas dolĉa kaj suĉa (Pear is sweet and juicy)'], category: 'Fruits', difficulty: 1, audioUrl: ''),
    Word(id: 'vinbero_001', esperanto: 'vinbero', english: 'grape', pronunciation: 'vin-BE-ro', definition: 'Small round fruit in clusters', examples: ['El vinberoj oni faras vinon (Wine is made from grapes)'], category: 'Fruits', difficulty: 2, audioUrl: ''),
    
    // 蔬菜
    Word(id: 'legomo_001', esperanto: 'legomo', english: 'vegetable', pronunciation: 'le-GO-mo', definition: 'Plant food', examples: ['Legomoj estas sanaj (Vegetables are healthy)'], category: 'Vegetables', difficulty: 1, audioUrl: ''),
    Word(id: 'karoto_001', esperanto: 'karoto', english: 'carrot', pronunciation: 'ka-RO-to', definition: 'Orange root vegetable', examples: ['Karotoj estas bonaj por la okuloj (Carrots are good for the eyes)'], category: 'Vegetables', difficulty: 1, audioUrl: ''),
    Word(id: 'terpomo_001', esperanto: 'terpomo', english: 'potato', pronunciation: 'ter-PO-mo', definition: 'Underground tuber', examples: ['Terpomoj estas ĉefmanĝaĵo (Potatoes are a staple food)'], category: 'Vegetables', difficulty: 1, audioUrl: ''),
    Word(id: 'tomato_001', esperanto: 'tomato', english: 'tomato', pronunciation: 'to-MA-to', definition: 'Red round fruit/vegetable', examples: ['Tomatoj estas uzataj en saladoj (Tomatoes are used in salads)'], category: 'Vegetables', difficulty: 1, audioUrl: ''),
    Word(id: 'kukumo_001', esperanto: 'kukumo', english: 'cucumber', pronunciation: 'ku-KU-mo', definition: 'Long green vegetable', examples: ['Kukumo estas refreŝiga (Cucumber is refreshing)'], category: 'Vegetables', difficulty: 2, audioUrl: ''),
    Word(id: 'cepo_001', esperanto: 'cepo', english: 'onion', pronunciation: 'CE-po', definition: 'Layered bulb vegetable', examples: ['Cepo faras min plori (Onion makes me cry)'], category: 'Vegetables', difficulty: 1, audioUrl: ''),
    Word(id: 'ajlo_001', esperanto: 'ajlo', english: 'garlic', pronunciation: 'AJ-lo', definition: 'Strong-smelling bulb', examples: ['Ajlo donas guston al manĝaĵoj (Garlic gives flavor to food)'], category: 'Vegetables', difficulty: 2, audioUrl: ''),
  ];

  // 高级词根词缀 (200个)
  static final List<Word> advancedRootsAffixes = [
    // 复杂前缀
    Word(id: 'kontraŭ_001', esperanto: 'kontraŭ-', english: 'against, counter-', pronunciation: 'kon-TRAŬ', definition: 'Prefix meaning against or opposite', examples: ['kontraŭdiri (to contradict)'], category: 'Advanced Prefixes', difficulty: 3, audioUrl: ''),
    Word(id: 'antaŭ_001', esperanto: 'antaŭ-', english: 'before, pre-', pronunciation: 'an-TAŬ', definition: 'Prefix meaning before in time or space', examples: ['antaŭvidi (to foresee)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'post_001', esperanto: 'post-', english: 'after, post-', pronunciation: 'POST', definition: 'Prefix meaning after in time', examples: ['postmorgaŭ (day after tomorrow)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'ĉirkaŭ_001', esperanto: 'ĉirkaŭ-', english: 'around, circum-', pronunciation: 'ĉir-KAŬ', definition: 'Prefix meaning around or surrounding', examples: ['ĉirkaŭiri (to go around)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'tra_001', esperanto: 'tra-', english: 'through, trans-', pronunciation: 'TRA', definition: 'Prefix meaning through or across', examples: ['trairi (to go through)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'preter_001', esperanto: 'preter-', english: 'past, beyond', pronunciation: 'PRE-ter', definition: 'Prefix meaning past or beyond', examples: ['preteriri (to pass by)'], category: 'Advanced Prefixes', difficulty: 3, audioUrl: ''),
    Word(id: 'super_001', esperanto: 'super-', english: 'above, over, super-', pronunciation: 'su-PER', definition: 'Prefix meaning above or excessive', examples: ['supernatura (supernatural)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'sub_001', esperanto: 'sub-', english: 'under, sub-', pronunciation: 'SUB', definition: 'Prefix meaning under or below', examples: ['subakva (underwater)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'inter_001', esperanto: 'inter-', english: 'between, inter-', pronunciation: 'in-TER', definition: 'Prefix meaning between or among', examples: ['internacia (international)'], category: 'Advanced Prefixes', difficulty: 2, audioUrl: ''),
    Word(id: 'ekster_001', esperanto: 'ekster-', english: 'outside, extra-', pronunciation: 'EKS-ter', definition: 'Prefix meaning outside or beyond', examples: ['eksterordinara (extraordinary)'], category: 'Advanced Prefixes', difficulty: 3, audioUrl: ''),
    
    // 复杂后缀
    Word(id: 'inda_001', esperanto: '-ind-', english: 'worthy of', pronunciation: 'IN-da', definition: 'Suffix meaning worthy or deserving', examples: ['admirinda (admirable)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'ema_001', esperanto: '-em-', english: 'inclined to', pronunciation: 'E-ma', definition: 'Suffix meaning having tendency', examples: ['parolema (talkative)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'enda_001', esperanto: '-end-', english: 'must be done', pronunciation: 'EN-da', definition: 'Suffix meaning obligatory', examples: ['farenda (to be done)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'ata_001', esperanto: '-at-', english: 'ongoing passive', pronunciation: 'A-ta', definition: 'Suffix for ongoing passive action', examples: ['amata (being loved)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'ita_001', esperanto: '-it-', english: 'completed passive', pronunciation: 'I-ta', definition: 'Suffix for completed passive action', examples: ['skribita (written)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'ota_001', esperanto: '-ot-', english: 'future passive', pronunciation: 'O-ta', definition: 'Suffix for future passive action', examples: ['farota (to be done)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'anta_001', esperanto: '-ant-', english: 'ongoing active', pronunciation: 'AN-ta', definition: 'Suffix for ongoing active action', examples: ['kantanta (singing)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'inta_001', esperanto: '-int-', english: 'completed active', pronunciation: 'IN-ta', definition: 'Suffix for completed active action', examples: ['veninta (having come)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'onta_001', esperanto: '-ont-', english: 'future active', pronunciation: 'ON-ta', definition: 'Suffix for future active action', examples: ['venonta (about to come)'], category: 'Advanced Suffixes', difficulty: 3, audioUrl: ''),
    Word(id: 'estr_001', esperanto: '-estr-', english: 'leader, chief', pronunciation: 'ES-tr', definition: 'Suffix indicating leadership', examples: ['lernejestrino (headmistress)'], category: 'Advanced Suffixes', difficulty: 2, audioUrl: ''),
  ];

  // 获取所有词汇
  static List<Word> getAllWords() {
    return [
      ...timeWords,
      ...foodWords,
      ...advancedRootsAffixes,
    ];
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    final categories = getAllWords().map((word) => word.category).toSet().toList();
    categories.sort();
    return categories;
  }
} 